package weixin02.service.impl;

import weixin02.entity.GoodsType;
import weixin02.dao.GoodsTypeDao;
import weixin02.service.GoodsTypeService;
import org.springframework.stereotype.Service;
import weixin02.util.R;
import weixin02.util.ResultCode;

import javax.annotation.Resource;
import java.util.List;

/**
 * (GoodsType)表服务实现类
 * @author makejava
 * @since 2021-07-06 21:14:23
 */
@Service("goodsTypeService")
public class GoodsTypeServiceImpl implements GoodsTypeService {
    @Resource
    private GoodsTypeDao goodsTypeDao;

    /**
     * 通过ID查询单条数据
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public GoodsType queryById(Integer id) {
        return this.goodsTypeDao.queryById(id);
    }

    /**
     * 查询多条数据
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    @Override
    public List<GoodsType> queryAllByLimit(int offset, int limit) {
        return this.goodsTypeDao.queryAllByLimit(offset, limit);
    }

    /*查询所有商品类型*/
    @Override
    public R queryAllType() {
        List<GoodsType> goodsTypes = goodsTypeDao.queryAll(new GoodsType());
        return new R(goodsTypes, ResultCode.SUCCESS);
    }

    /*根据姓名查询商品类型*/
    @Override
    public R queryTypeByName(GoodsType goodsType) {
        List<GoodsType> goodsTypes = goodsTypeDao.queryAll(goodsType);
        return new R(goodsTypes, ResultCode.SUCCESS);
    }

    /*增加商品类型*/
    @Override
    public R insert(String typeName) {
        GoodsType goodsType = new GoodsType();
        goodsType.setName(typeName);
        int rows = this.goodsTypeDao.insert(goodsType);
        return new R(rows,ResultCode.SUCCESS);
    }

    @Override
    public R delete(int id) {
        int rows = this.goodsTypeDao.deleteById(id);
        return new R(rows,ResultCode.SUCCESS);
    }

    /*更新商品类型（name、state）*/
    @Override
    public R update(GoodsType goodsType) {
        int rows = this.goodsTypeDao.update(goodsType);
        return new R(rows,ResultCode.SUCCESS);
    }

    /*更新商品状态*/
    @Override
    public R updateState(GoodsType goodsType) {
        int rows = this.goodsTypeDao.updateState(goodsType);
        return new R(rows,ResultCode.SUCCESS);
    }
}
